home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_gnu / include / ctype.h < prev    next >
C/C++ Source or Header  |  1996-01-30  |  2KB  |  59 lines

  1. /* This file may have been modified by DJ Delorie (Jan 1991).  If so,
  2. ** these modifications are Coyright (C) 1991 DJ Delorie, 24 Kirsten Ave,
  3. ** Rochester NH, 03867-2954, USA.
  4. */
  5.    
  6. #ifndef _ctype_h
  7. #define _ctype_h
  8.    
  9. #define _U 01
  10. #define _L 02
  11. #define _N 04
  12. #define _S 010
  13. #define _P 020
  14. #define _C 040
  15. #define _X 0100
  16. #define _B 0200
  17.  
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21.   
  22. extern  char      _ctype_[];
  23.  
  24. extern int (isalnum) (int);
  25. extern int (isalpha) (int);
  26. extern int (iscntrl) (int);
  27. extern int (isdigit) (int);
  28. extern int (isgraph) (int);
  29. extern int (islower) (int);
  30. extern int (ispunct) (int);
  31. extern int (isspace) (int);
  32. extern int (isupper) (int);
  33. extern int (isxdigit) (int);
  34. extern int (tolower) (int);
  35. extern int (toupper) (int);
  36.    
  37. #define isalpha(c)  ((_ctype_+1)[c]&(_U|_L))
  38. #define isupper(c)  ((_ctype_+1)[c]&_U)
  39. #define islower(c)  ((_ctype_+1)[c]&_L)
  40. #define isdigit(c)  ((_ctype_+1)[c]&_N)
  41. #define isxdigit(c) ((_ctype_+1)[c]&(_X|_N))
  42. #define isspace(c)  ((_ctype_+1)[c]&_S)
  43. #define ispunct(c)  ((_ctype_+1)[c]&_P)
  44. #define isalnum(c)  ((_ctype_+1)[c]&(_U|_L|_N))
  45. #define isprint(c)  ((_ctype_+1)[c]&(_P|_U|_L|_N|_B))
  46. #define isgraph(c)  ((_ctype_+1)[c]&(_P|_U|_L|_N))
  47. #define iscntrl(c)  ((_ctype_+1)[c]&_C)
  48. #define isascii(c)  ((unsigned)(c)<=0177)
  49.  
  50. #define toupper(c)  ({int _c=(c); islower(_c) ? (_c-'a'+'A') : _c; })
  51. #define tolower(c)  ({int _c=(c); isupper(_c) ? (_c-'A'+'a') : _c; })
  52. #define toascii(c)  ((c)&0177)
  53.  
  54. #ifdef __cplusplus
  55. }
  56. #endif
  57.  
  58. #endif /* _ctype_h */
  59.